function initMap(options) {
  options = Object.assign(
    {
      tilt: 60,
      heading: 0,
    },
    options
  );
  // id map_container
  const map = new BMapGL.Map("map_container", {
    restrictCenter: false,
    style: { styleJson: options.style || darkStyle },
  });
  map.enableKeyboard();
  map.enableScrollWheelZoom(); // 开启鼠标滚轮缩放
  map.enableInertialDragging(); // 开启地图视图的惯性拖动效果
  map.enableContinuousZoom(); // 允许地图在用户触控屏幕时进行连续缩放，而不仅仅是一次性放大或缩小
  // 视觉属性
  map.setDisplayOptions(
    options.displayOptions || {
      indoor: false,
      poi: true, // 显示建筑物内部的详细楼层结构和室内的POI信息
      // 天空颜色设置
      skyColors: options.skyColors || [
        "rgba(5, 5, 30, 0.01)", // 地面颜色
        "rgba(5, 5, 30, 1.0)",
      ],
    }
  );
  if (options.center && options.zoom) {
    let center = options.center;
    if (center instanceof Array) {
      center = new BMapGL.Point(options.center[0], options.center[1]);
    }
    map.centerAndZoom(center, options.zoom); // 设置中心点坐标和地图缩放
  }

  map.setTilt(options.tilt); // 地图的倾斜角度
  map.setHeading(options.heading); // 地图旋转角度
  return map;
}
